SAS is an interface standard for connecting two or more apparatuses. SAS defines a specification for establishing connection between an initiator device (which will be denoted as initiator below) and a target device (which will be denoted as target below) and exchanging commands or user data therebetween.
Each of the initiator and the target includes a scrambler and a descrambler to reduce a deviation of bits in exchanged interface data. When the scrambler in the initiator is synchronized with the descrambler in the target, interface data transmitted by the initiator and received by the target is appropriately scrambled/descrambled. Similarly, when the scrambler in the target is synchronized with the descrambler in the initiator, interface data transmitted by the target and received by the initiator is appropriately scrambled/descrambled.
SAS4 standard newly defines SAS Gen5. A packet mode is supported in the SAS Gen5 instead of the dword mode supported in SAS Gen4. Interface data is handled in units of 40 bits in the dword mode while interface data is handled in units of 150 bits in the packet mode.
The packet mode is different from the dword mode in timing when the scrambler and the descrambler are synchronized. In the dword mode, the scrambler is initialized on transmission of a primitive indicating the start of a frame and the descrambler is initialized on reception of the primitive.
To the contrary, in the packet mode, the scrambler is initialized on transmission of PACKET_SYNC extended binary primitive (which will be also denoted as PACKET_SYNC below) and the descrambler is initialized on reception of the PACKET_SYNC. Timing to exchange PACKET_SYNC is not related with exchanging a frame. Thus, when a loss of synchronization between the scrambler and the descrambler occurs due to an unexpected operation, the loss of synchronization may continue until PACKET_SYNC is exchanged again, and errors may be caused in a series in frames transmitted between the initiator and the target.